<html>
<head><meta charset="utf-8"><title>capstone report · t-compiler/wg-meta · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/index.html">t-compiler/wg-meta</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/topic/capstone.20report.html">capstone report</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="164351777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185694-t-compiler/wg-meta/topic/capstone%20report/near/164351777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/topic/capstone.20report.html#164351777">(Apr 27 2019 at 20:14)</a>:</h4>
<p>One thing I'd love, especially as a person who wouldn't do any of the work, is a "final report" of each big project that discussed what made that particular thing hard to do. </p>
<p>For example, what makes (made) specialization so difficult? Why wasn't it just "write some code"? I know that it's not that trivial, but I don't necessarily know <em>why</em>. With NLL, over time I learned aspects like "oh we need MIR to do it right", but something more official and consistent would be wonderful.</p>



<a name="164355625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185694-t-compiler/wg-meta/topic/capstone%20report/near/164355625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Brian Kung <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/topic/capstone.20report.html#164355625">(Apr 27 2019 at 22:02)</a>:</h4>
<p>A good model might be the Dolphin emulator project's monthly reports. Those are always fascinating to read!</p>



<a name="164362391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185694-t-compiler/wg-meta/topic/capstone%20report/near/164362391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/topic/capstone.20report.html#164362391">(Apr 28 2019 at 01:22)</a>:</h4>
<p>Man, those posts from Dolphin are <em>amazing</em>. It makes me want to write emulators.</p>



<a name="164473298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185694-t-compiler/wg-meta/topic/capstone%20report/near/164473298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/topic/capstone.20report.html#164473298">(Apr 29 2019 at 17:54)</a>:</h4>
<blockquote>
<p>A good model might be the Dolphin emulator project's monthly reports. Those are always fascinating to read!</p>
</blockquote>
<p>link to a few of those?</p>



<a name="164473481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185694-t-compiler/wg-meta/topic/capstone%20report/near/164473481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/topic/capstone.20report.html#164473481">(Apr 29 2019 at 17:56)</a>:</h4>
<p><a href="https://dolphin-emu.org/blog/2019/02/01/dolphin-progress-report-dec-2018-and-jan-2019/" target="_blank" title="https://dolphin-emu.org/blog/2019/02/01/dolphin-progress-report-dec-2018-and-jan-2019/">https://dolphin-emu.org/blog/2019/02/01/dolphin-progress-report-dec-2018-and-jan-2019/</a></p>



<a name="164473569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185694-t-compiler/wg-meta/topic/capstone%20report/near/164473569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/topic/capstone.20report.html#164473569">(Apr 29 2019 at 17:57)</a>:</h4>
<p>And one with performance comparisons: <a href="https://dolphin-emu.org/blog/2018/12/04/dolphin-progress-report-november-2018/" target="_blank" title="https://dolphin-emu.org/blog/2018/12/04/dolphin-progress-report-november-2018/">https://dolphin-emu.org/blog/2018/12/04/dolphin-progress-report-november-2018/</a></p>



<a name="164473692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185694-t-compiler/wg-meta/topic/capstone%20report/near/164473692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/topic/capstone.20report.html#164473692">(Apr 29 2019 at 17:59)</a>:</h4>
<p>The amount of work that must go in these reports (and the work behind them) is insane</p>



<a name="164476142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185694-t-compiler/wg-meta/topic/capstone%20report/near/164476142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Brian Kung <a href="https://rust-lang.github.io/zulip_archive/stream/185694-t-compiler/wg-meta/topic/capstone.20report.html#164476142">(Apr 29 2019 at 18:26)</a>:</h4>
<p>I particularly liked the unique engineering problem and the history of attempted solutions in their Ubershader writeup: <a href="https://dolphin-emu.org/blog/2017/07/30/ubershaders/" target="_blank" title="https://dolphin-emu.org/blog/2017/07/30/ubershaders/">https://dolphin-emu.org/blog/2017/07/30/ubershaders/</a></p>
<blockquote>
<p>But what if we don't have to rely on specialized shaders? The crazy idea was born to emulate the <em>rendering pipeline itself</em> with an interpreter that runs directly on the GPU as a set of monsterous flexible shaders. If we compile these massive shaders on game start, whenever a game configures Flipper/Hollywood to render something, these "uber shaders" would <strong>configure themselves</strong> and render it without needing any new shaders. Theoretically, this would solve shader compilation stuttering by avoiding compilation <em>altogether</em>.</p>
<p>This idea is all kinds of crazy, but it was also the first idea that had the potential to actually solve this impossible problem. The difficulty with this solution instead came from the absurd amount of work and expertise required to even get to the point of trying it. To put it into perspective, even among all the developers that work on Dolphin, only two or three people <em>at most</em> have the necessary knowledge on not only the GameCube/Wii hardware, but also modern GPUs, APIs, <strong>and the drivers</strong> to write, debug, and optimize the shaders. Not to mention running an interpreter as huge shaders is not exactly easy on the GPU, and many were afraid that all that work might not even run full speed on current video cards.</p>
</blockquote>
<p>And their writeup on their development / continuous integration architecture made me realize they're a Real Software Engineering Project: <a href="https://dolphin-emu.org/blog/2015/01/25/making-developers-more-productive-dolphin-development-infrastructure/" target="_blank" title="https://dolphin-emu.org/blog/2015/01/25/making-developers-more-productive-dolphin-development-infrastructure/">https://dolphin-emu.org/blog/2015/01/25/making-developers-more-productive-dolphin-development-infrastructure/</a></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>